﻿using System;

namespace Informant.Clients.DataProviders
{
	public class SendSmsProgressReportedEventArgs : EventArgs
	{
		private static SendSmsProgressReportedEventArgs _empty;

		/// <summary>
		/// Initializes a new instance of the <see cref="SendSmsProgressReportedEventArgs"/> class.
		/// </summary>
		public SendSmsProgressReportedEventArgs() : this(0,0,0) { }
		/// <summary>
		/// Initializes a new instance of the <see cref="SendSmsProgressReportedEventArgs"/> class.
		/// </summary>
		/// <param name="succeeded">The succeeded.</param>
		/// <param name="failed">The failed.</param>
		/// <param name="total">The total.</param>
		public SendSmsProgressReportedEventArgs(Int32 succeeded, Int32 failed, Int32 total)
		{
			Sent = succeeded;
			Failed = failed;
			Total = total;
		}

		/// <summary>
		/// Gets the empty event args.
		/// </summary>
		/// <value>The empty event arg.</value>
		public new SendSmsProgressReportedEventArgs Empty
		{
			get
			{
				if (_empty == null)
				{
					_empty = new SendSmsProgressReportedEventArgs();
				}
				return _empty;
			}
		}
		/// <summary>
		/// Gets or sets the sent.
		/// </summary>
		/// <value>The sent.</value>
		public Int32 Sent { get; private set; }
		/// <summary>
		/// Gets or sets the failed.
		/// </summary>
		/// <value>The failed.</value>
		public Int32 Failed { get; private set; }
		/// <summary>
		/// Gets or sets the total.
		/// </summary>
		/// <value>The total.</value>
		public Int32 Total { get; private set; }
	}
}
